﻿using System;
using System.Collections.Generic;

namespace Wrox.ProCSharp.Delegates
{
    class BubbleSorter//冒泡排序
    {
        static public void Sort<T>(IList<T> sortArray, Func<T, T, bool> comparison)
        {
            bool swapped = true;//先定义为真
            do
            {
                swapped = false;//设置为假
                for (int i = 0; i < sortArray.Count - 1; i++)
                {
                    if (comparison(sortArray[i + 1], sortArray[i]))//返回值为true就执行
                    {
                        T temp = sortArray[i];//定义一个T类型的对象
                        sortArray[i] = sortArray[i + 1];//赋值
                        sortArray[i + 1] = temp;
                        swapped = true;//设置为真
                    }
                }
            } while (swapped);
        }
    }
}
